﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ControlPresupuesto
{
    public partial class FrmPresupuestoAnualActivarInactivar : Form
    {
        private ControlPresupuestoDataSet.spPresupuestoAnualCabeceraDataTable table = new ControlPresupuestoDataSet.spPresupuestoAnualCabeceraDataTable();

        public FrmPresupuestoAnualActivarInactivar()
        {
            InitializeComponent();

            this.periodosGroupBox.Enabled = this.activoCheckBox.Checked;
        }

        private void FrmPresupuestoAnualActivarInactivar_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'controlPresupuestoDataSet.spPresupuestoAnualPeriodo' Puede moverla o quitarla según sea necesario.
            this.spPresupuestoAnualPeriodoTableAdapter.Fill(this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo);
            // TODO: esta línea de código carga datos en la tabla 'controlPresupuestoDataSet.spPresupuestoAnualCabecera' Puede moverla o quitarla según sea necesario.
            this.spPresupuestoAnualCabeceraTableAdapter.Fill(this.controlPresupuestoDataSet.spPresupuestoAnualCabecera);
        }

        private void cancelarButton_Click(object sender, EventArgs e)
        {
            Utils.get().blanquearCampos(this);
            this.codPresupuestoBuscadorAWIL.Focus();
        }

        private void guardarButton_Click(object sender, EventArgs e)
        {
            if (this.codPresupuestoBuscadorAWIL.AWIL_Texto.Trim().Equals(string.Empty))
            {
                return;
            }

            try
            {
                //--- Activo o Inactivo el presupuesto
                this.spPresupuestoAnualCabeceraTableAdapter.FillBy(
                    this.table,
                    "ActivarInactivarPresupuesto",
                    null,
                    null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Trim(),
                    null,
                    null,
                    null,
                    null,
                    this.activoCheckBox.Checked
                    );

                //-- Activo o desactivo los Periodos del Presupuesto
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo,"ActivarInactivarPeriodo",null,null,null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2,4)+"01",null,this.eneroCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo,"ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "02", null, this.febreroCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "03", null, this.marzoCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "04", null, this.abrilCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "05", null, this.mayoCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "06", null, this.junioCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "07", null, this.julioCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "08", null, this.agostroCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "09", null, this.septiembreCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "10", null, this.octubreCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "11", null, this.noviembreCheckBox.Checked);
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo, "ActivarInactivarPeriodo", null, null, null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto.Substring(2, 4) + "12", null, this.diciembreCheckBox.Checked);
                

                foreach (ControlPresupuestoDataSet.spPresupuestoAnualPeriodoRow row in this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo)
                {
                    if (row.Periodo.Substring(4, 2) == "01")
                        this.eneroCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "02")
                        this.febreroCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "03")
                        this.marzoCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "04")
                        this.abrilCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "05")
                        this.mayoCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "06")
                        this.junioCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "07")
                        this.julioCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "08")
                        this.agostroCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "09")
                        this.septiembreCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "10")
                        this.octubreCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "11")
                        this.noviembreCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "12")
                        this.diciembreCheckBox.Checked = row.Activo;
                }
            }
            catch (Exception ex)
            {
                MessageException.show(ex);
                return;
            }
            //MessageBox.Show("Presupuesto "+(this.activoCheckBox.Checked? "Activado":"Inactivado")+" Con exito!");
            MessageBox.Show("Cambios Guardados Con exito!");

            Utils.get().blanquearCampos(this);
            this.codPresupuestoBuscadorAWIL.Focus();
            return;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                //--- Cargo el estado del Presupuesto
                this.spPresupuestoAnualCabeceraTableAdapter.FillBy(
                    this.table,
                    "ConsultarPresupuesto",
                    null,
                    null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto,
                    null,
                    null,
                    null,
                    null,
                    null
                    );
                if (this.table.Rows.Count == 0)
                {
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto = string.Empty;
                    return;
                }
                this.publicadoCheckBox.Checked = ((ControlPresupuestoDataSet.spPresupuestoAnualCabeceraRow)this.table.Rows[0]).Publicado;
                this.activoCheckBox.Checked = ((ControlPresupuestoDataSet.spPresupuestoAnualCabeceraRow)this.table.Rows[0]).Activo;

                //--- Cargo el estado de los periodos
                this.spPresupuestoAnualPeriodoTableAdapter.FillBy(
                    this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo,
                    "ConsultarPeriodosPresupuesto",
                    null,
                    null,
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto,
                    null,
                    null,
                    null
                    );

                if (this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo.Rows.Count != 12)
                {
                    MessageBox.Show("El presupuesto no tiene asociado los 12 meses del año. Verifique!");
                    this.codPresupuestoBuscadorAWIL.AWIL_Texto = string.Empty;
                    return;
                }

                foreach (ControlPresupuestoDataSet.spPresupuestoAnualPeriodoRow row in this.controlPresupuestoDataSet.spPresupuestoAnualPeriodo)
                {
                    if (row.Periodo.Substring(4, 2) == "01")
                        this.eneroCheckBox.Checked=row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "02")
                        this.febreroCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "03")
                        this.marzoCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "04")
                        this.abrilCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "05")
                        this.mayoCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "06")
                        this.junioCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "07")
                        this.julioCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "08")
                        this.agostroCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "09")
                        this.septiembreCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "10")
                        this.octubreCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "11")
                        this.noviembreCheckBox.Checked = row.Activo;
                    else if (row.Periodo.Substring(4, 2) == "12")
                        this.diciembreCheckBox.Checked = row.Activo;
                }

            }
            catch (Exception ex)
            {
                MessageException.show(ex);
                return;
            }
        }

        private void activoCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            this.periodosGroupBox.Enabled = this.activoCheckBox.Checked;
        }

        //private void publicadoCheckBox_CheckedChanged(object sender, EventArgs e)
        //{
        //    if (this.table.Rows.Count == 0)
        //    {
        //        this.publicadoCheckBox.Checked = false;
        //        return;
        //    }
        //    this.publicadoCheckBox.Checked = ((ControlPresupuestoDataSet.spPresupuestoAnualCabeceraRow)this.table.Rows[0]).Publicado;
        //}
    }
}
